package com.cuvretool;

import com.cuvretool.view.inputlistener.ViewInputHandleListener;
import com.cuvretool.view.jframe.JFrameApplication;

/**
 * 窗口基类
 * @author boy
 *
 */
public class View implements Base{
	// ===========================================================
	// Constants
	// ===========================================================

	// ===========================================================
	// Fields
	// ===========================================================
	/**
	 * View外抛处理方式至Model的接口
	 */
	private static ModelInputHandleListener mModelInputHandleListener;
	/**
	 * 窗口外抛处理方式至View的接口
	 */
	private static ViewInputHandleListener mViewInputHandleListener;
	/**
	 * 主窗口
	 */
	private JFrameApplication mJFrameApplication;
	// ===========================================================
	// Constructors
	// ===========================================================
	public View(){
		init();
	}
	// ===========================================================
	// Getter & Setter
	// ===========================================================
	/**
	 * 设置外抛至Model处理方式
	 * @param inputHandleListener
	 */
	public void setModelInputListener(ModelInputHandleListener modelinputHandleListener) {
		mModelInputHandleListener = modelinputHandleListener;
	}
	/**
	 * 获取外抛至Model处理方式
	 * @return
	 */
	public static ModelInputHandleListener getModelInputListener() {
		if(mModelInputHandleListener == null) new Throwable("mModelInputHandleListener is null");
		return mModelInputHandleListener;
	}
	/**
	 * 获取内部外抛处理方式
	 * @return
	 */
	public static ViewInputHandleListener getViewInputHandleListener() {
		return mViewInputHandleListener;
	}
	// ===========================================================
	// Methods for/from SuperClass/Interfaces
	// ===========================================================
	@Override
	public void init() {
		mViewInputHandleListener = new ViewInputHandleListener();
		mJFrameApplication = new JFrameApplication();
		
		mViewInputHandleListener.setFrameApplication(mJFrameApplication);
	}
	
	@Override
	public void run(){
		mJFrameApplication.run();
		mJFrameApplication.setVisible(true);
	}
	
	@Override
	public void over() {
		// TODO Auto-generated method stub
		
	}
	// ===========================================================
	// Methods
	// ===========================================================
	
	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================
}
